package com.rsg.graphics;

import java.awt.*;
import java.awt.image.BufferedImage;
import java.util.HashMap;
import java.util.Map;

/**
 * RImage,支持字符串代码位图/矢量图,在其中实现的代码矢量绘图方法可以以连续的笔画快速构建图像
 * @author Rock Chin
 */
public class RImage extends BufferedImage {
	Point lsPoint_vector=new Point(0,0);
	public RImage(int width, int height, int imageType) {
		super(width, height, imageType);
		this.createGraphics();
	}

	/**
	 * 编码格式:图像属性;颜色映射表;颜色位编码/矢量编码
	 * 图像属性:长,宽,颜色单位字长l
	 * 颜色映射表:单元,单元,...
	 * 颜色映射表单元:前l个字符为编号,后字符为颜色16进制rgb值
	 * 颜色位编码:每l个字符为一个像素,遇到'L'则下一行,'E'则结束文件
	 * @param code
	 */
	public void codeImage(String code){
		String area[]=code.split(";");
		//图像属性
		String info[]=area[0].split(",");
		int image_w=Integer.parseInt(info[0]);
		int image_h=Integer.parseInt(info[1]);
		int char_len=Integer.parseInt(info[2]);
		String type=info[3];//这里描述了是矢量图("vector")或是位图("bit")

		//颜色映射表
		Map<String,Color> colorList=new HashMap<>();
		String chars[]=area[1].split(",");
		for(String clUnit:chars){
			colorList.put(clUnit.substring(0,char_len),new Color(Integer.parseInt(clUnit.substring(char_len))));
		}

		//绘图数据
		if(type.equals("bit")){
			char data[]=area[2].toCharArray();
			for(int i=0;i<)
		}else if(type.equals("vector")){

		}
	}
}
